package Service;

//import Model.permission.HappyPermission;
import Model.permission.Role;
import Model.permission.RoleVO;
import Model.permission.Permission;
import org.apache.ibatis.annotations.Param;


import java.util.List;

public interface RoleService {

  /**
   * 查询所有角色
   * @return
   */
  List<Role> roleList ();

  RoleVO findRoleAndPerms(Integer id);

  /**
   * 关联查询权限树列表
   * @return
   */
  List<Permission> findPerms();

  /**
   * 查找角色权限Id
   * @param roleId
   * @return
   */
  List<Integer> selectPermissionIdOfRole(int roleId);


  List<Permission> selectPermissionOfRole(@Param("roleId") int roleId);

  /**
   * 更新角色并授权
   * @param role
   * @param permIds
   * @return
   */
  Boolean updateRole(Role role, String permIds);

  /**
   * 删除角色以及它对应的权限
   * @param id
   * @return
   */
  Boolean delRole(int id);

  /**
   * 添加角色
   * @param role
   * @param permIds
   * @return
   */
  Boolean addRole(Role role, String permIds);

  /**
   * 更新权限
   * @param permission
   * @return
   */
  boolean updatePerm(Permission permission);

  /**
   * 添加权限数结点
   * @param permission
   * @return Permission 返回权限新增的权限 || null
   */
  Permission addPermission(Permission permission);

  /**
   * 获取权限数结点
   * @param id
   * @return
   */
  Permission getPermission(int id);

  /**
   * 删除权限数结点
   * @param id
   * @return
   */
  String delPermission(int id);

  /**
   * 根据用户id获取权限数据
   * @param id
   * @return
   */
  List<Permission> getUserPerms(Integer id);

}
